package com.yhsoft.goods.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yhsoft.benefitcard.controller.response.GetGoodsListOutVo;
import com.yhsoft.benefitcard.controller.response.GetJFKGoodListOutVo;
import com.yhsoft.benefitcard.entity.BatchGoods;
import com.yhsoft.goods.controller.response.*;
import com.yhsoft.goods.entity.GoodsInfo;
import com.yhsoft.wxprogram.po.GoodsPo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 商品信息表 Mapper 接口
 * </p>
 *
 * @author yyyyyyyh
 * @since 2023-09-22
 */
public interface GoodsInfoMapper extends BaseMapper<GoodsInfo> {

    IPage<AllGoodsOutVo> getAllListPageByConditions(IPage<AllGoodsOutVo> page, @Param("ew") Wrapper wrapper);

    IPage<GoodsInfoListByCompanyIdOutVo> getListPageByConditions(IPage<GoodsInfoListByCompanyIdOutVo> page, @Param("ew") Wrapper wrapper);

    GoodsOutVo getGoodsInfoById(@Param("ew") Wrapper wrapper);

    SkuInfoOutVo getSkuInfoOutVo(@Param("ew") Wrapper wrapper);

    IPage<GetGoodsListOutVo> getNotSelectedListPageByConditions(IPage<GetGoodsListOutVo> page, @Param("ew") Wrapper wrapper);

    IPage<GetJFKGoodListOutVo> getSelectedListPageByConditions(IPage<GetJFKGoodListOutVo> page, @Param("ew") Wrapper wrapper);

    List<BatchGoods> getBatchGoods(@Param("ew") Wrapper wrapper);

    IPage<GoodsPo> getWxGoodsListPageByConditions(IPage<GoodsPo> page, @Param("ew") Wrapper wrapper);

    IPage<DisGoodsOutVo> getDisGoods(IPage<DisGoodsOutVo> page, @Param("ew") Wrapper wrapper);

    IPage<GoodsPo> getWxGoodsListByGoodsIds(IPage<GoodsPo> page, @Param("ew") Wrapper wrapper);

    IPage<GoodsPo> getWxGoodsListPageByConditions_new(IPage<GoodsPo> page, @Param("ew") Wrapper wrapper);

    List<BatchGoods> getGoodsMaxPrice(@Param("ew") Wrapper wrapper);

    IPage<CompanyGoodsOutVo> getAllListPageByConditions_saler(IPage<CompanyGoodsOutVo> page, @Param("ew") Wrapper wrapper);
}
